#ifndef __PVMTYPES_H__
#define __PVMTYPES_H__

/* Types used by PVM library */

#if defined(_WIN32_WCE) || defined(WIN32) || defined(__SYMBIAN32__) || defined(SHP) || defined(TIZEN) || (defined(IW_PLATFORM_S3E) && !defined(__GNUC__))

	typedef signed char pvm_int8;
	typedef signed short pvm_int16;
	typedef signed int pvm_int32;
	typedef signed long long pvm_int64;
	typedef pvm_int32 pvm_int;

	typedef unsigned char pvm_uint8;
	typedef unsigned short pvm_uint16;
	typedef unsigned int pvm_uint32;
	typedef unsigned long long pvm_uint64;
	typedef pvm_uint32 pvm_uint;

	#if defined(_UNICODE) || defined(UNICODE)
		#if defined(SHP) || defined(TIZEN)
			typedef wchar_t pvm_char;
		#else
			typedef unsigned short pvm_char;
		#endif//SHP, TIZEN
	#else
		typedef char pvm_char;
	#endif//UNICODE
	typedef pvm_int32 pvm_bool;

	typedef pvm_int64 pvm_file_size;

	#if	defined(PVM_USE_POSIX)
		typedef size_t pvm_size;
	#else
		typedef pvm_uint32 pvm_size;
	#endif

#elif defined(IPHONE) || defined(__ANDROID__) || ((__linux) && !defined(TIZEN)) || (defined(IW_PLATFORM_S3E) && defined(__GNUC__))

	typedef signed char pvm_int8;
	typedef short pvm_int16;
	typedef long int pvm_int32;
	typedef long long pvm_int64;
	typedef pvm_int32 pvm_int;

	typedef unsigned char pvm_uint8;
	typedef unsigned short pvm_uint16;
	typedef unsigned long int pvm_uint32;
	typedef unsigned long long pvm_uint64;
	typedef pvm_uint32 pvm_uint;

	typedef char pvm_char;

	typedef pvm_int32 pvm_bool;

	typedef pvm_int64 pvm_file_size;
	typedef pvm_uint32 pvm_size;

#else
	#error "Define pvm_ types for this platform!"
#endif

#endif //__PVMTYPES_H__
